[PR]テレビ番組表
今夜の番組チェック

マルチモニタ対応について

ここ最近、1台のPCに対して、2台以上のモニタ(ディスプレイ)を繋げて使っている方からの書き込みが目立つようになりました。

(Turbo) Delphiで作っているソフトに関しては、Formのpositionを、poDeskTopCenterに設定してコンパイルしています。
この状態ですと、マルチモニタ使用時に、プライマリーとセカンダリモニタの丁度真ん中に(2つのモニタにまたがる形)表示されてしまいます。
※NVIDIA GeForce 5200 DualViewで確認済み

そこで、これから公開するソフト(新規/バージョンアップ)に関して、原則として、フォーム(ウィンドウ)の表示位置について、以下のような仕様で、進めたいと思います。

仕様

・ソフト終了時のフォーム(ウィンドウ)の位置を覚えておく
・次回、ソフト起動時には、前回終了位置にフォーム(ウィンドウ)を表示させる

※すでに、独自にINIファイルで、終了時のフォームの位置を保存しているソフトでは、若干対応の具合に変更があるかもしれません。
※Turbo C++も、同じ仕様で行う予定ですが、Delphiと、習熟度が違うため、同仕様で行けるかは、不明。

システムメニューの仕様

モニタ仕様(状態)を変更した事で、ウィンドウがモニタ外に表示されてしまった場合の回避策として、タスクバー上で右クリックした時に
表示される(システムメニュー)に移動及び、左上に移動を追加します。



移動は、システムメニューの移動と同じ。左上に移動は、単純に、ウィンドウの表示位置を0,0にセットしています。
※前回までは、Scroll Lockキーをトリガーとしていましたが、今回は、キーの状態を見ていません。

上記の仕様に合わせて、検証用のソフトを作ってあります。
mm_check.exeを実行して、仕様の確認ができます。

マルチモニタ検証ソフト mm_check01.lzh MD5=0a45de06280af4d9c0abb1bf59554b86

この仕様について、ご意見がある方は、BBSかメールで連絡ください。

正直な所、これまで、そのときの思いつきで、INIファイルを作ってきたので、どれくらいこの仕様を通せるか、分かっていません。

とりあえず、作者としての叩き台だと思ってください。